package com.design.observer.job;

/**
 * 
 * 观察者优点：
 * 
 * 抽象主题只依赖于抽象观察者
 * 
 * 观察者模式支持广播通信
 * 
 * 观察者模式使信息产生层和相应层分离
 * 
 * 观察者缺点：
 * 
 * 如果一个主题被大量观察者注册，则通知所有观察者会付出较高代价
 * 
 * 如果某些观察者的响应方法被则色，整个通知过程即被阻塞
 *
 */
public class TestObserver {

	public static void main(String[] args) {
		ITalent junior = new JuniorEngineer();
		ITalent senior = new SeniorEngineer();
		ITalent architect = new Architect();

		AbstractHr subject = new HeadHunter();
		subject.addTalent(junior);
		subject.addTalent(senior);
		subject.addTalent(architect);

		subject.publishJob("Big Data");
	}

}
